<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen: Eigen::Hyperplane&lt; Scalar_, AmbientDim_, Options_ &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1Hyperplane.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1Hyperplane-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::Hyperplane&lt; Scalar_, AmbientDim_, Options_ &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__Geometry__chapter.html">Geometry</a> &raquo; <a class="el" href="group__Geometry__Reference.html">Reference</a> &raquo; <a class="el" href="group__Geometry__Module.html">Geometry module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Scalar_, int AmbientDim_, int Options_&gt;<br />
class Eigen::Hyperplane&lt; Scalar_, AmbientDim_, Options_ &gt;</h3>

<p>A hyperplane. </p>
<p>This is defined in the Geometry module.</p><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;Eigen/Geometry&gt;</span> </div>
</div><!-- fragment --><p>A hyperplane is an affine subspace of dimension n-1 in a space of dimension n. For example, a hyperplane in a plane is a line; a hyperplane in 3-space is a plane.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Scalar_</td><td>the scalar type, i.e., the type of the coefficients </td></tr>
    <tr><td class="paramname">AmbientDim_</td><td>the dimension of the ambient space, can be a compile time value or Dynamic. Notice that the dimension of the hyperplane is AmbientDim_-1.</td></tr>
  </table>
  </dd>
</dl>
<p>This class represents an hyperplane as the zero set of the implicit equation \( n \cdot x + d = 0 \) where \( n \) is a unit normal vector of the plane (linear part) and \( d \) is the distance (offset) to the origin. </p>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ae90f55496bc8cd7d4612ed1d5878e5ec"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceEigen.html#a62e77e0933482dafde8fe197d9a2cfde">Eigen::Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#ae90f55496bc8cd7d4612ed1d5878e5ec">Index</a></td></tr>
<tr class="separator:ae90f55496bc8cd7d4612ed1d5878e5ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6d7e330896982be88d4e6cf8e9365687"><td class="memItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a6d7e330896982be88d4e6cf8e9365687">absDistance</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p) const</td></tr>
<tr class="separator:a6d7e330896982be88d4e6cf8e9365687"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ade2168d4f6c4c026598693997641b9"><td class="memTemplParams" colspan="2">template&lt;typename NewScalarType &gt; </td></tr>
<tr class="memitem:a2ade2168d4f6c4c026598693997641b9"><td class="memTemplItemLeft" align="right" valign="top">internal::cast_return_type&lt; <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>, <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt; NewScalarType, AmbientDimAtCompileTime, Options &gt; &gt;::type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a2ade2168d4f6c4c026598693997641b9">cast</a> () const</td></tr>
<tr class="separator:a2ade2168d4f6c4c026598693997641b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c317f5d518d46c0dc226b99d771cef1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Matrix.html">Coefficients</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a7c317f5d518d46c0dc226b99d771cef1">coeffs</a> ()</td></tr>
<tr class="separator:a7c317f5d518d46c0dc226b99d771cef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cf1e35c912d3371cc63e0f3db622f20"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1Matrix.html">Coefficients</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a8cf1e35c912d3371cc63e0f3db622f20">coeffs</a> () const</td></tr>
<tr class="separator:a8cf1e35c912d3371cc63e0f3db622f20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d630aa4c500289329e58331b37d4719"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Hyperplane.html#ae90f55496bc8cd7d4612ed1d5878e5ec">Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a6d630aa4c500289329e58331b37d4719">dim</a> () const</td></tr>
<tr class="separator:a6d630aa4c500289329e58331b37d4719"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48900ab285860922b0a416270b05ae41"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a48900ab285860922b0a416270b05ae41">Hyperplane</a> ()</td></tr>
<tr class="separator:a48900ab285860922b0a416270b05ae41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a794aa21077ff54212cca44f02af98d15"><td class="memTemplParams" colspan="2">template&lt;typename OtherScalarType , int OtherOptions&gt; </td></tr>
<tr class="memitem:a794aa21077ff54212cca44f02af98d15"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a794aa21077ff54212cca44f02af98d15">Hyperplane</a> (const <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt; OtherScalarType, AmbientDimAtCompileTime, OtherOptions &gt; &amp;other)</td></tr>
<tr class="separator:a794aa21077ff54212cca44f02af98d15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abee7a8320d2941a7c887d9e91a67688c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#abee7a8320d2941a7c887d9e91a67688c">Hyperplane</a> (const <a class="el" href="classEigen_1_1ParametrizedLine.html">ParametrizedLine</a>&lt; Scalar, AmbientDimAtCompileTime &gt; &amp;parametrized)</td></tr>
<tr class="separator:abee7a8320d2941a7c887d9e91a67688c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7701d9cbe6ec552430fac5a34d81a53b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a7701d9cbe6ec552430fac5a34d81a53b">Hyperplane</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;n, const Scalar &amp;d)</td></tr>
<tr class="separator:a7701d9cbe6ec552430fac5a34d81a53b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d290a6e8e38f6da6287a7b9777ce3c7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a2d290a6e8e38f6da6287a7b9777ce3c7">Hyperplane</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;n, const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;e)</td></tr>
<tr class="separator:a2d290a6e8e38f6da6287a7b9777ce3c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab64d26f6da689d0ce915f6bb4724de5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#aab64d26f6da689d0ce915f6bb4724de5">Hyperplane</a> (<a class="el" href="classEigen_1_1Hyperplane.html#ae90f55496bc8cd7d4612ed1d5878e5ec">Index</a> _dim)</td></tr>
<tr class="separator:aab64d26f6da689d0ce915f6bb4724de5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f6648846f4752864a0354b5aca07ddd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Matrix.html">VectorType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a0f6648846f4752864a0354b5aca07ddd">intersection</a> (const <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> &amp;other) const</td></tr>
<tr class="separator:a0f6648846f4752864a0354b5aca07ddd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79243e1b4082ac38caecb828dc6bfacf"><td class="memTemplParams" colspan="2">template&lt;int OtherOptions&gt; </td></tr>
<tr class="memitem:a79243e1b4082ac38caecb828dc6bfacf"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a79243e1b4082ac38caecb828dc6bfacf">isApprox</a> (const <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt; Scalar, AmbientDimAtCompileTime, OtherOptions &gt; &amp;other, const typename <a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::Real &amp;prec=<a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::dummy_precision()) const</td></tr>
<tr class="separator:a79243e1b4082ac38caecb828dc6bfacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a388a71c684e240bc68a340c82d8ae6de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Block.html">NormalReturnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a388a71c684e240bc68a340c82d8ae6de">normal</a> ()</td></tr>
<tr class="separator:a388a71c684e240bc68a340c82d8ae6de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14ae73ebb82904dcf08c2616a9c6e483"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Block.html">ConstNormalReturnType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a14ae73ebb82904dcf08c2616a9c6e483">normal</a> () const</td></tr>
<tr class="separator:a14ae73ebb82904dcf08c2616a9c6e483"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a845654ad0f81efcbbb39692fd35e2758"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a845654ad0f81efcbbb39692fd35e2758">normalize</a> (void)</td></tr>
<tr class="separator:a845654ad0f81efcbbb39692fd35e2758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bd270148130444d617ca9b6db314a4a"><td class="memItemLeft" align="right" valign="top">Scalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a3bd270148130444d617ca9b6db314a4a">offset</a> ()</td></tr>
<tr class="separator:a3bd270148130444d617ca9b6db314a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60a39dae40a9b9f76a6993762ba18f45"><td class="memItemLeft" align="right" valign="top">const Scalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a60a39dae40a9b9f76a6993762ba18f45">offset</a> () const</td></tr>
<tr class="separator:a60a39dae40a9b9f76a6993762ba18f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac058391470eb7c50300ce71fafbc5f27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Matrix.html">VectorType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#ac058391470eb7c50300ce71fafbc5f27">projection</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p) const</td></tr>
<tr class="separator:ac058391470eb7c50300ce71fafbc5f27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f78ff8b2171e90134911cce845c5ab3"><td class="memItemLeft" align="right" valign="top">Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a1f78ff8b2171e90134911cce845c5ab3">signedDistance</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p) const</td></tr>
<tr class="separator:a1f78ff8b2171e90134911cce845c5ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb4d86eb3d2bb8311681067df71499de"><td class="memTemplParams" colspan="2">template&lt;typename XprType &gt; </td></tr>
<tr class="memitem:afb4d86eb3d2bb8311681067df71499de"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#afb4d86eb3d2bb8311681067df71499de">transform</a> (const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; XprType &gt; &amp;mat, <a class="el" href="group__enums.html#gaee59a86102f150923b0cac6d4ff05107">TransformTraits</a> traits=<a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a>)</td></tr>
<tr class="separator:afb4d86eb3d2bb8311681067df71499de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a177b9d1d945807496332605640e07d7a"><td class="memTemplParams" colspan="2">template&lt;int TrOptions&gt; </td></tr>
<tr class="memitem:a177b9d1d945807496332605640e07d7a"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a177b9d1d945807496332605640e07d7a">transform</a> (const <a class="el" href="classEigen_1_1Transform.html">Transform</a>&lt; Scalar, AmbientDimAtCompileTime, <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a>, TrOptions &gt; &amp;t, <a class="el" href="group__enums.html#gaee59a86102f150923b0cac6d4ff05107">TransformTraits</a> traits=<a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a>)</td></tr>
<tr class="separator:a177b9d1d945807496332605640e07d7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a0043925c28a90328d3fb9edf27380824"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a0043925c28a90328d3fb9edf27380824">Through</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p0, const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p1)</td></tr>
<tr class="separator:a0043925c28a90328d3fb9edf27380824"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e8eb0508c38957fd946bd4053e8c555"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1Hyperplane.html#a6e8eb0508c38957fd946bd4053e8c555">Through</a> (const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p0, const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p1, const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;p2)</td></tr>
<tr class="separator:a6e8eb0508c38957fd946bd4053e8c555"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Typedef Documentation</h2>
<a id="ae90f55496bc8cd7d4612ed1d5878e5ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae90f55496bc8cd7d4612ed1d5878e5ec">&#9670;&nbsp;</a></span>Index</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="namespaceEigen.html#a62e77e0933482dafde8fe197d9a2cfde">Eigen::Index</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html#ae90f55496bc8cd7d4612ed1d5878e5ec">Index</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000024">Deprecated:</a></b></dt><dd>since <a class="el" href="namespaceEigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> 3.3 </dd></dl>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a48900ab285860922b0a416270b05ae41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48900ab285860922b0a416270b05ae41">&#9670;&nbsp;</a></span>Hyperplane() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Default constructor without initialization </p>

</div>
</div>
<a id="aab64d26f6da689d0ce915f6bb4724de5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab64d26f6da689d0ce915f6bb4724de5">&#9670;&nbsp;</a></span>Hyperplane() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classEigen_1_1Hyperplane.html#ae90f55496bc8cd7d4612ed1d5878e5ec">Index</a>&#160;</td>
          <td class="paramname"><em>_dim</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs a dynamic-size hyperplane with <em>_dim</em> the dimension of the ambient space </p>

</div>
</div>
<a id="a2d290a6e8e38f6da6287a7b9777ce3c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d290a6e8e38f6da6287a7b9777ce3c7">&#9670;&nbsp;</a></span>Hyperplane() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>e</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Construct a plane from its normal <em>n</em> and a point <em>e</em> onto the plane. </p><dl class="section warning"><dt>Warning</dt><dd>the vector normal is assumed to be normalized. </dd></dl>

</div>
</div>
<a id="a7701d9cbe6ec552430fac5a34d81a53b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7701d9cbe6ec552430fac5a34d81a53b">&#9670;&nbsp;</a></span>Hyperplane() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Scalar &amp;&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs a plane from its normal <em>n</em> and distance to the origin <em>d</em> such that the algebraic equation of the plane is \( n \cdot x + d = 0 \). </p><dl class="section warning"><dt>Warning</dt><dd>the vector normal is assumed to be normalized. </dd></dl>

</div>
</div>
<a id="abee7a8320d2941a7c887d9e91a67688c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abee7a8320d2941a7c887d9e91a67688c">&#9670;&nbsp;</a></span>Hyperplane() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1ParametrizedLine.html">ParametrizedLine</a>&lt; Scalar, AmbientDimAtCompileTime &gt; &amp;&#160;</td>
          <td class="paramname"><em>parametrized</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs a hyperplane passing through the parametrized line <em>parametrized</em>. If the dimension of the ambient space is greater than 2, then there isn't uniqueness, so an arbitrary choice is made. </p>

</div>
</div>
<a id="a794aa21077ff54212cca44f02af98d15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a794aa21077ff54212cca44f02af98d15">&#9670;&nbsp;</a></span>Hyperplane() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<div class="memtemplate">
template&lt;typename OtherScalarType , int OtherOptions&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt; OtherScalarType, AmbientDimAtCompileTime, OtherOptions &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Copy constructor with scalar type conversion </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6d7e330896982be88d4e6cf8e9365687"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d7e330896982be88d4e6cf8e9365687">&#9670;&nbsp;</a></span>absDistance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::absDistance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the absolute distance between the plane <code>*this</code> and a point <em>p</em>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1Hyperplane.html#a1f78ff8b2171e90134911cce845c5ab3">signedDistance()</a> </dd></dl>

</div>
</div>
<a id="a2ade2168d4f6c4c026598693997641b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ade2168d4f6c4c026598693997641b9">&#9670;&nbsp;</a></span>cast()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<div class="memtemplate">
template&lt;typename NewScalarType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">internal::cast_return_type&lt;<a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>, <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt;NewScalarType,AmbientDimAtCompileTime,Options&gt; &gt;::type <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::cast </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>*this</code> with scalar type casted to <em>NewScalarType</em> </dd></dl>
<p>Note that if <em>NewScalarType</em> is equal to the current scalar type of <code>*this</code> then this function smartly returns a const reference to <code>*this</code>. </p>

</div>
</div>
<a id="a7c317f5d518d46c0dc226b99d771cef1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c317f5d518d46c0dc226b99d771cef1">&#9670;&nbsp;</a></span>coeffs() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Matrix.html">Coefficients</a>&amp; <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::coeffs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a non-constant reference to the coefficients c_i of the plane equation: \( c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \) </dd></dl>

</div>
</div>
<a id="a8cf1e35c912d3371cc63e0f3db622f20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cf1e35c912d3371cc63e0f3db622f20">&#9670;&nbsp;</a></span>coeffs() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1Matrix.html">Coefficients</a>&amp; <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::coeffs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a constant reference to the coefficients c_i of the plane equation: \( c_0*x_0 + ... + c_{d-1}*x_{d-1} + c_d = 0 \) </dd></dl>

</div>
</div>
<a id="a6d630aa4c500289329e58331b37d4719"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6d630aa4c500289329e58331b37d4719">&#9670;&nbsp;</a></span>dim()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html#ae90f55496bc8cd7d4612ed1d5878e5ec">Index</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::dim </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the dimension in which the plane holds </dd></dl>

</div>
</div>
<a id="a0f6648846f4752864a0354b5aca07ddd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f6648846f4752864a0354b5aca07ddd">&#9670;&nbsp;</a></span>intersection()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Matrix.html">VectorType</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::intersection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the intersection of *this with <em>other</em>.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>The ambient space must be a plane, i.e. have dimension 2, so that <code>*this</code> and <em>other</em> are lines.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If <em>other</em> is approximately parallel to *this, this method will return any point on *this. </dd></dl>

</div>
</div>
<a id="a79243e1b4082ac38caecb828dc6bfacf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79243e1b4082ac38caecb828dc6bfacf">&#9670;&nbsp;</a></span>isApprox()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<div class="memtemplate">
template&lt;int OtherOptions&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::isApprox </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&lt; Scalar, AmbientDimAtCompileTime, OtherOptions &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const typename <a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt; Scalar &gt;::Real &amp;&#160;</td>
          <td class="paramname"><em>prec</em> = <code><a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <code>*this</code> is approximately equal to <em>other</em>, within the precision determined by <em>prec</em>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1DenseBase.html#ae8443357b808cd393be1b51974213f9c">MatrixBase::isApprox()</a> </dd></dl>

</div>
</div>
<a id="a388a71c684e240bc68a340c82d8ae6de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a388a71c684e240bc68a340c82d8ae6de">&#9670;&nbsp;</a></span>normal() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Block.html">NormalReturnType</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::normal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a non-constant reference to the unit normal vector of the plane, which corresponds to the linear part of the implicit equation. </dd></dl>

</div>
</div>
<a id="a14ae73ebb82904dcf08c2616a9c6e483"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14ae73ebb82904dcf08c2616a9c6e483">&#9670;&nbsp;</a></span>normal() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Block.html">ConstNormalReturnType</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::normal </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a constant reference to the unit normal vector of the plane, which corresponds to the linear part of the implicit equation. </dd></dl>

</div>
</div>
<a id="a845654ad0f81efcbbb39692fd35e2758"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a845654ad0f81efcbbb39692fd35e2758">&#9670;&nbsp;</a></span>normalize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::normalize </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>normalizes <code>*this</code> </p>

</div>
</div>
<a id="a3bd270148130444d617ca9b6db314a4a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3bd270148130444d617ca9b6db314a4a">&#9670;&nbsp;</a></span>offset() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar&amp; <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::offset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a non-constant reference to the distance to the origin, which is also the constant part of the implicit equation </dd></dl>

</div>
</div>
<a id="a60a39dae40a9b9f76a6993762ba18f45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60a39dae40a9b9f76a6993762ba18f45">&#9670;&nbsp;</a></span>offset() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const Scalar&amp; <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::offset </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the distance to the origin, which is also the "constant term" of the implicit equation </dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>the vector normal is assumed to be normalized. </dd></dl>

</div>
</div>
<a id="ac058391470eb7c50300ce71fafbc5f27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac058391470eb7c50300ce71fafbc5f27">&#9670;&nbsp;</a></span>projection()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Matrix.html">VectorType</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::projection </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the projection of a point <em>p</em> onto the plane <code>*this</code>. </dd></dl>

</div>
</div>
<a id="a1f78ff8b2171e90134911cce845c5ab3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f78ff8b2171e90134911cce845c5ab3">&#9670;&nbsp;</a></span>signedDistance()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Scalar <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::signedDistance </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the signed distance between the plane <code>*this</code> and a point <em>p</em>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1Hyperplane.html#a6d7e330896982be88d4e6cf8e9365687">absDistance()</a> </dd></dl>

</div>
</div>
<a id="a0043925c28a90328d3fb9edf27380824"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0043925c28a90328d3fb9edf27380824">&#9670;&nbsp;</a></span>Through() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::Through </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p1</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs a hyperplane passing through the two points. If the dimension of the ambient space is greater than 2, then there isn't uniqueness, so an arbitrary choice is made. </p>

</div>
</div>
<a id="a6e8eb0508c38957fd946bd4053e8c555"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e8eb0508c38957fd946bd4053e8c555">&#9670;&nbsp;</a></span>Through() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a> <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::Through </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Matrix.html">VectorType</a> &amp;&#160;</td>
          <td class="paramname"><em>p2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs a hyperplane passing through the three points. The dimension of the ambient space is required to be exactly 3. </p>

</div>
</div>
<a id="afb4d86eb3d2bb8311681067df71499de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb4d86eb3d2bb8311681067df71499de">&#9670;&nbsp;</a></span>transform() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<div class="memtemplate">
template&lt;typename XprType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&amp; <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::transform </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; XprType &gt; &amp;&#160;</td>
          <td class="paramname"><em>mat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__enums.html#gaee59a86102f150923b0cac6d4ff05107">TransformTraits</a>&#160;</td>
          <td class="paramname"><em>traits</em> = <code><a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Applies the transformation matrix <em>mat</em> to <code>*this</code> and returns a reference to <code>*this</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">mat</td><td>the Dim x Dim transformation matrix </td></tr>
    <tr><td class="paramname">traits</td><td>specifies whether the matrix <em>mat</em> represents an <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a84413028615d2d718bafd2dfb93dafef">Isometry</a> or a more generic <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a> transformation. The default is <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a177b9d1d945807496332605640e07d7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a177b9d1d945807496332605640e07d7a">&#9670;&nbsp;</a></span>transform() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , int AmbientDim_, int Options_&gt; </div>
<div class="memtemplate">
template&lt;int TrOptions&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a>&amp; <a class="el" href="classEigen_1_1Hyperplane.html">Eigen::Hyperplane</a>&lt; Scalar_, AmbientDim_, Options_ &gt;::transform </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1Transform.html">Transform</a>&lt; Scalar, AmbientDimAtCompileTime, <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a>, TrOptions &gt; &amp;&#160;</td>
          <td class="paramname"><em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__enums.html#gaee59a86102f150923b0cac6d4ff05107">TransformTraits</a>&#160;</td>
          <td class="paramname"><em>traits</em> = <code><a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Applies the transformation <em>t</em> to <code>*this</code> and returns a reference to <code>*this</code>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">t</td><td>the transformation of dimension Dim </td></tr>
    <tr><td class="paramname">traits</td><td>specifies whether the transformation <em>t</em> represents an <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a84413028615d2d718bafd2dfb93dafef">Isometry</a> or a more generic <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a> transformation. The default is <a class="el" href="group__enums.html#ggaee59a86102f150923b0cac6d4ff05107a0872f0a82453aaae40339c33acbb31fb">Affine</a>. Other kind of transformations are not supported. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Hyperplane_8h_source.html">Hyperplane.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1Hyperplane.html">Hyperplane</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:07:55 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
